<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>

</body>
<script>

    // 数组的方法: 官方提供的专门操作数组的方法  -> 所有的数组均可以使用
    // 语法:
    // 数组.方法名();


    // 学习数组的方法需要注意:
    // 1. 基本功能(有什么用)
    // 2. 结果(方法的返回值)
    // 3. 是否影响原数组 (有些方法直接操作原数组 , 有些方法返回新数组)

    // 数组中元素的 增 删 改 查


    // reverse()  数组的翻转(反转)
    // 返回值: 翻转后的原数组
    // 是否影响原数组: 影响


    // var list = ["a", "b", "c", "d", "e", "f", "g"];

    // var result = list.reverse();

    // console.log("返回值:", result);
    // console.log("原数组:", list);


    // join()     用特定的字符将数组拼接形成字符串 (数组拼接得到字符串,中间用特定的字符分隔)
    // 返回值: 拼接后得到的字符串
    // 是否影响原数组: 不影响
    var list = ["a", "b", "c", "d", "e", "f", "g"];

    // 通过数组得到字符串 "a-b-c-d-e-f-g-"

    /* var str = "";
    var char = "-";
    for (var i = 0; i < list.length; i++) {
        var item = list[i];
        if (i != list.length - 1) {
            str += item + char;
        } else {
            str += item;
        }
    }
    console.log(str);*/

    // var result = list.join("-");
    // var result = list.join("+");
    // var result = list.join(",");
    // var result = list.join(" ");
    // var result = list.join("");  // 直接拼接元素
    // console.log(result);


    // slice(startIndex,endIndex)  数组裁切 (从整个数组中裁切一小部分元素(对应下标范围内的) -> 放到新数组中)     => 含头不含尾   [startIndex,endIndex)
    // startIndex 起始下标(默认:0)
    // endIndex 终止下标(默认: 数组.length)
    // 返回值: 新数组
    // 是否影响原数组: 不影响

    // var list = ["a", "b", "c", "d", "e", "f", "g"];

    // 实现:
    // var arr = [];
    // for (var i = 2; i < 5; i++) {
    //     var item = list[i];
    //     arr.push(item);
    // }
    // console.log(arr);

    // var result = list.slice(2, 5);
    // console.log("返回值:", result);
    // console.log("原数组:", list);


    // 不传参->使用默认值   => 得到一个与原数组元素相同的新数组(数组复制   -> 有些数组的方法会影响原数组,可以先复制一个新数组,操作新数组 -> 不影响原数组)
    // var result = list.slice();
    // console.log("返回值:", result);
    // console.log("原数组:", list);


    // concat()  数组合并/拼接 (将多个数组,元素 合并形成一个新数组)
    // 1. 如果传入的参数的是一个数组, 将数组中的每个元素放到新数组
    // 2. 如果传入的参数不是数组,直接放到新数组中

    var a = [1, 2, 3];
    var b = [4, 5, 6];
    var c = [7, 8, 9];

    // [1, 2, 3, 4, 5, 6, 7, 8, 9]

    // var arr = [];
    // for (var i = 0; i < a.length; i++) {
    //     var item = a[i];
    //     arr.push(item)
    // }
    // for (var i = 0; i < b.length; i++) {
    //     var item = b[i];
    //     arr.push(item)
    // }
    // for (var i = 0; i < c.length; i++) {
    //     var item = c[i];
    //     arr.push(item)
    // }
    // console.log(arr);

    // var result = a.concat(b, c);
    // console.log("返回值:", result);
    // console.log("原数组:", a, b, c);

    // var result = a.concat(b, c, "x", "y");
    // console.log("返回值:", result);
    // console.log("原数组:", a, b, c);

    // 不传参   => 得到一个与原数组元素相同的新数组(数组复制   -> 有些数组的方法会影响原数组,可以先复制一个新数组,操作新数组 -> 不影响原数组)
    var list = ["a", "b", "c", "d", "e", "f", "g"];
    var result = list.concat();
    console.log(result);











</script>

</html>